﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;

namespace CSVFormater
{
    class Taobao2BonasWithPingpaiFormater
    {
        public static DataSet Format(DataSet dataSet,string band)
        {
            var ds = new DataSet();
            for(var tableIndex = 0; tableIndex < dataSet.Tables.Count; tableIndex ++)
            {
                var dt = new DataTable();
                
/*

                /*商品编号对应的是宝贝的类目♥1♥
                var dc0 = new DataColumn();
                
                /*商品名称对应的是宝贝名称♥1♥
                var dc1 = new DataColumn("商品名");


                /*  商品刊登形式空白: 一般　→ G: 一般
                    店舗主画面刊登】
                    N: 新規
                    R: 推荐
                    H: 热销
                    S: 特别
                    NB : 最好新品
                    RB : 最佳推荐
                    【商品类别页面】
                    MD : MD推荐
                    F : 醒目
                    ※供货商设置无效。
                    ※超过指定文字数时　→　エラー(SKIP)♥1♥
                var dc2 = new DataColumn("商品刊登形式");
                dc2.DefaultValue = "N";
                var dc3 = new DataColumn("是否刊登商品");
                dc3.DefaultValue = "N";

                /*
                 *  B : 銀行转帐
                    C : 信用卡
                    T : 货到付款
                    V : 便利店  
                    P : 积分+Ｅ货币                                                                                                                                                 
                    ※ 可以重复设置, 順序无关
                       ex) BCT, VPC
                    ※供货商设置无效。
                    ※超过指定文字数时　→　error (SKIP)                                         
                 * Alipay: A                                                                                  
                 * Tenpay: D
                 ♥1♥
                var dc4 = new DataColumn("购买付款方式");
                dc4.DefaultValue = "A、D";

                /*
                    Ｚ : 全部（会員/非会員）
                    M : 会員
                    A : 成人
                 ♥1♥
                var dc5 = new DataColumn("购买条件");
                dc5.DefaultValue = "Z";

                /*
                 *  销售类别1　　例） A000001
                    【共通检查項目】
                ①类别存在吗？
                ②存在的类别是第1类别吗？

                ※要修改类别的话、必须重新指定所有存在的类别。换言之、如果要修改第３层的类别的话, 也必须要输入第1、2类别。♥1♥
                var dc6 = new DataColumn("类别１");
                dc6.DefaultValue = "A000016";

                /*销售类别2　　例） B000001
                第１类别的下位存在类别的话、必須输入、没有下位类别的话,設定値无效。

                【共通检查項目】
                ①存在类别吗？
                ②存在的类别是、第2类别吗？
                ③是第1类别的下位类别吗？♥1♥
                var dc7 = new DataColumn("类别２");
                dc7.DefaultValue = "B000006";

                var dc8 = new DataColumn("类别３");
                dc8.DefaultValue = "";

                var dc9 = new DataColumn("类别４");
                dc9.DefaultValue = "";

                /*※ 供货商无效。

                【检查項目】
                ①最低销售价格 ≠ 0 and 
                   最低销售价格　＞　销售价格

                ※最低销售价格检查的对象是、最后的一项。换言之、CSV上有变更值,将和它比较。♥1♥
                var dc10 = new DataColumn("销售价格");

                
                var dc11 = new DataColumn("积分");
                dc11.DefaultValue = "";

                var dc12 = new DataColumn("市场价格");
                dc12.DefaultValue = "";

                var dc13 = new DataColumn("进货价格");
                dc13.DefaultValue = "";

                var dc14 = new DataColumn("供应价格");
                dc14.DefaultValue = "";

                var dc15 = new DataColumn("最低销售价格");
                dc15.DefaultValue = "";

                var dc16 = new DataColumn("供应配送费的区分");
                dc16.DefaultValue = "";

                var dc17 = new DataColumn("供应配送费");
                dc17.DefaultValue = "";

                var dc18 = new DataColumn("交货价格");
                dc18.DefaultValue = "";

                var dc19 = new DataColumn("交货配送费");
                dc19.DefaultValue = "";

                var dc20 = new DataColumn("在库");
               

                var dc21 = new DataColumn("安全在库");
                dc21.DefaultValue = "";

                var dc22 = new DataColumn("制造商/进口商");
                dc22.DefaultValue = "";

                var dc23 = new DataColumn("原产地");
                dc23.DefaultValue = "";

                var dc24 = new DataColumn("产品型号名");
                dc24.DefaultValue = "";

                var dc25 = new DataColumn("扣税/不扣税");
                dc25.DefaultValue = "";

                var dc26 = new DataColumn("商品检索关键字");
                dc26.DefaultValue = "";

                var dc27 = new DataColumn("要点信息");
                dc27.DefaultValue = "";

                var dc28 = new DataColumn("特殊显示事项 - 显示名");
                dc28.DefaultValue = "";

                var dc29 = new DataColumn("特殊显示事项 - 内容");
                dc29.DefaultValue = "";

                var dc30 = new DataColumn("订购次数限制");
                dc30.DefaultValue = "";

                var dc31 = new DataColumn("最大订购限制");
                dc31.DefaultValue = "";

                var dc32 = new DataColumn("最小订购限制");
                dc32.DefaultValue = "";


                var dc33 = new DataColumn("关联商品");
                dc33.DefaultValue = "";

                var dc34 = new DataColumn("保修期");
                dc34.DefaultValue = "";

                var dc35 = new DataColumn("图片");

                var dc36 = new DataColumn("基本商品说明输入项目");
                dc36.DefaultValue = "";

                var dc37 = new DataColumn("基本商品说明");
                dc37.DefaultValue = "";

                var dc38 = new DataColumn("配送公司");
                dc38.DefaultValue = "";

                var dc39 = new DataColumn("不可配送地区");
                dc39.DefaultValue = "";

                var dc40 = new DataColumn("重量/大小");
                dc40.DefaultValue = "";

                var dc41 = new DataColumn("包装单位");
                dc41.DefaultValue = "";

                var dc42 = new DataColumn("追加配送费");
                dc42.DefaultValue = "";

                var dc43 = new DataColumn("能否更换退货");
                dc43.DefaultValue = "";

                var dc44 = new DataColumn("AS保证时间");
                dc44.DefaultValue = "";

                var dc45 = new DataColumn("配送退货交换信息");
                dc45.DefaultValue = "";

                var dc46 = new DataColumn("配送属性(根据添加项确定)");
                dc46.DefaultValue = "";

                var dc47 = new DataColumn("能够同捆属性");
                dc47.DefaultValue = "";

                var dc48 = new DataColumn("个别配送");
                dc48.DefaultValue = "";

                var dc49 = new DataColumn("商品项目区分");
                dc49.DefaultValue = "";

                var dc50 = new DataColumn("商品项目标题");
                dc50.DefaultValue = "";

                var dc51 = new DataColumn("商品项目1…");
                dc51.DefaultValue = "";

                var dc52 = new DataColumn("商品项目2…");
                dc52.DefaultValue = "";

                var dc53 = new DataColumn("商品项目3…");
                dc53.DefaultValue = "";

                dt.Columns.Add(dc0);
                dt.Columns.Add(dc1);
                dt.Columns.Add(dc2);
                dt.Columns.Add(dc3);
                dt.Columns.Add(dc4);
                dt.Columns.Add(dc5);
                dt.Columns.Add(dc6);
                dt.Columns.Add(dc7);
                dt.Columns.Add(dc8);
                dt.Columns.Add(dc9);
                dt.Columns.Add(dc10);
                dt.Columns.Add(dc11);
                dt.Columns.Add(dc12);
                dt.Columns.Add(dc13);
                dt.Columns.Add(dc14);
                dt.Columns.Add(dc15);
                dt.Columns.Add(dc16);
                dt.Columns.Add(dc17);
                dt.Columns.Add(dc18);
                dt.Columns.Add(dc19);
                dt.Columns.Add(dc20);
                dt.Columns.Add(dc21);
                dt.Columns.Add(dc22);
                dt.Columns.Add(dc23);
                dt.Columns.Add(dc24);
                dt.Columns.Add(dc25);
                dt.Columns.Add(dc26);
                dt.Columns.Add(dc27);
                dt.Columns.Add(dc28);
                dt.Columns.Add(dc29);
                dt.Columns.Add(dc30);
                dt.Columns.Add(dc31);
                dt.Columns.Add(dc32);
                dt.Columns.Add(dc33);
                dt.Columns.Add(dc34);
                dt.Columns.Add(dc35);
                dt.Columns.Add(dc36);
                dt.Columns.Add(dc37);
                dt.Columns.Add(dc38);
                dt.Columns.Add(dc39);
                dt.Columns.Add(dc40);
                dt.Columns.Add(dc41);
                dt.Columns.Add(dc42);
                dt.Columns.Add(dc43);
                dt.Columns.Add(dc44);
                dt.Columns.Add(dc45);
                dt.Columns.Add(dc46);
                dt.Columns.Add(dc47);
                dt.Columns.Add(dc48);
                dt.Columns.Add(dc49);
                dt.Columns.Add(dc50);
                dt.Columns.Add(dc51);
                dt.Columns.Add(dc52);
                dt.Columns.Add(dc53);

                dt.CreateDataReader();


                /*
                 * Copy datas
                 * 1,2,11,21,36
                 ♥1♥
                int[] columnToIndex =   {0, 1, 10, 20, 35};
                int[] columnFromIndex = {1, 0,  7 , 9, 25};

                ColumnContentCopy(dataSet.Tables[tableIndex], ref dt, columnToIndex,columnFromIndex);

                ds.Tables.Add(dt);

*/



            }
            return ds;
        }
        public static void ColumnContentCopy(DataTable columnFrom, ref DataTable columnTo, int[] columnToIndex, int[] columnFromIndex)
        {
            for(int i = 0 ; i < columnToIndex.Count(); i ++)
            {
                for (int j = 0; j < columnFrom.Rows.Count; j++)
                {
                    
                    columnTo.Rows[j][i] = columnFrom.Rows[j][columnFromIndex[i]];
                }
            }
        }
    }
}
